package com.cloud.eurekaconsumerfeign;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;

/**
 * Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端。
 *
 * 启动工程 eureka-server、eureka-client、eureka-consumer-feign
 * 然后访问http://localhost:2101/consumer
 * 来跟踪观察eureka-consumer-feign服务是如何消费eureka-client服务的/dc接口的，
 * 并且也可以通过启动多个eureka-client服务来观察其负载均衡的效果。
 *
 * @EnableFeignClients 开启扫描Spring Cloud Feign客户端的功能
 *
 * Feign是基于Ribbon实现的，所以它自带了客户端负载均衡功能，也可以通过Ribbon的IRule进行策略扩展。
 * 另外，Feign还整合的Hystrix来实现服务的容错保护，在Dalston版本中，Feign的Hystrix默认是关闭的。
 */
@EnableDiscoveryClient
@EnableFeignClients
@SpringBootApplication
public class EurekaConsumerFeignApplication {

	public static void main(String[] args) {
		SpringApplication.run(EurekaConsumerFeignApplication.class, args);
	}
}
